package com.study.mike.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.study.mike.model.dto.GrantRoleResourceDTO;
import com.study.mike.model.dto.QueryRoleDTO;
import com.study.mike.model.entity.Role;
import com.study.mike.model.po.*;

import java.util.List;

/**
 * @author KangHui
 * @Date 2022/8/19 16:19
 */
public interface RoleService extends IService<Role> {

    /**
     * 新增角色
     *
     * @param po
     * @return
     */
    Role addRole(AddRolePO po);

    /**
     * 分页获取角色信息
     *
     * @param po
     * @return
     */
    Page<QueryRoleDTO> queryRole(QueryRolePO po);

    /**
     * 编辑角色
     *
     * @param po
     * @return
     */
    Role editRole(EditRolePO po);

    /**
     * 授予角色资源列表
     *
     * @param roleId
     * @return
     */
    List<GrantRoleResourceDTO> grantRoleResourceList(List<Integer> roleId);


    /**
     * 授予角色资源
     *
     * @param po
     * @return
     */
    Boolean grantRoleResource(GrantRoleResourcePO po);

    /**
     * 按照不同维度筛选角色
     *
     * @param po
     * @return
     */
    List<Role> sortOther(SortOtherPO po);
}
